The present invention relates to a method of combinatorial weighing in a combinatorial weighing machine, and more particularly to a combinatorial weighing method capable of shortening a processing time for determining an optimum combination by improving patterns of weight combinations.
There is known a combinatorial weighing apparatus having a plurality of weighing machines for measuring the weights of articles therein. The combinatorial weighing apparatus operates by combining the weights from the weighing machines, finding a combination of weights which is equal to a target combination or closest to the target combination within an allowable preset range, discharging articles from the weighing machines which give such a combination found, then charging new articles into the emptied weighing machines, combining the weights from the weighing machines, and repeating the above process for successive automatic weighing operations.
FIG. 1 of the accompanying drawings schematically shows a combinatorial weighing apparatus for effecting such a combinatorial weighing operation. The apparatus includes a distribution table 11 for distributing articles radially outwardly to charge them into a plurality of n weighing sections 1, 1, . . . , 1 arranged radially and circumferentially spaced around the table 11. The distribution table 11 has a vibratory feeding capability and vibrates for a given interval of time for supplying the articles into the weighing sections. Each of the n weighing sections 1 has a weighing machine 101 comprising a distributive supply unit 1a, a pool hopper 1b, a pool hopper gate 1c, a hopper driver 1g, a weighing hopper 1d, and a weight detector 1e. The distributive supply units 1a are radially mounted on a support table 1h in circumferentially surrounding relation to the distribution table 11, and each distributive supply unit 1a has an electromagnetic vibrator 1a-1 and a trough 1a-2. Articles supplied from the distribution table 1a-1 to the trough 1a-2 are charged from a distal end of the trough 1a-2 into the pool hopper 1b by linear reciprocable movement of the electromagnetic vibrator 1a-1. The articles charged in each pool hopper 1b are then charged into the weighing hopper 1d when the hopper gate 1c is opened under the control of the hopper driver 1g. The articles charged in each weighing hopper 1d are measured for their weight by the associated weight detector 1e. The weight of the articles as measured by the weight detector 1e is applied as an input to a combinatorial processor unit, described below. The combinatorial processor unit effects combinatorial weighing processing on the weights to find an optimum combination of weights. The weighing hoppers 1d of the weighing machines selected as giving the optimum combination are emptied to discharge the articles by opening the weighing hopper gates 1f by means of the hopper drivers 1g. The articles discharged from the weighing hoppers 1d fall into a collection chute 1j disposed below the weighing hoppers 1d, and are collected and delivered to a packaging machine (not shown). The collection chute 1j has a conical shape or a polygonal funnel shape. The articles are collected in the collection chute 1j by gravity or forcibly by a scraper (not shown) so that the articles will be gathered from an inner peripheral surface of the collection chute 1j toward a lower central position therein.
FIG. 2 is a block diagram of the combinatorial weighing apparatus. The combinatorial weighing apparatus includes n weighing machines 101-1, . . . , 101-n each composed of the weighing hopper 1d and the weight detector 1e, described above, for weighing the weights of supplied articles and issuing weight values Wi (i=1, 2, . . . , n). A multiplexer 102 issues the weight values Wi from the weighing machines 101-1, . . . , 101-n successively as a weight readout signal WRS, the multiplexer 102 being composed of analog switches and the like. The analog weight values Wi issued from the multiplexer 102 are converted into digital values by an A/D converter 103. A combinatorial weighing processor unit 104, in the form of a computer, basically includes a processor (central processing unit) 104a, a data memory 104b comprising a RAM, and a program memory 104c for storing a program for combinatorial processing. The processor 104a has a general-purpose register 104d. To the combinatorial weighing processor unit 104 are connected a weight setting unit 105 for setting a target weight value, upper and lower limit setting units 106, 107 for setting a preferable allowable preset range of combinatorial total weights, a display unit 108 for displaying a combinatorial total weight, selected weighing machines, weighing failures, and other information, and a discharge control unit 109.
Weighing operation of the combinatorial weighing apparatus shown in FIG. 2 will be described with reference to the flowchart of FIG. 3 and FIG. 4.
(1) When a start signal (timing signal) STS is generated by the packaging machine (not shown), the start signal STS is read by the processor 104a which then starts a combinatorial weighing process.
(2) Then, the processor 104a issues a weight readout signal WRS to the multiplexer 102 to enable the multiplexer 102 to apply the weight values Wi (i=1, 2, . . . , n) successively to the A/D converter 103. The weight values Wi applied to the A/D converter, are then converted thereby into digital signals which are fed to the combinatorial control unit 104, wherein the digital signals are stored by the processor 104a into the data memory 104b.
(3) Thereafter, the processor 104a effects 2.sup.n -1 combinatorial computations under the control of the combinatorial processing program. Where there are ten weighing machines, it has been conventional practice to combine detected weight data items from the ten weighing machines in group B composed of 1st through 8th weighing machines and in group A composed of 9th and 10th weighing machines as shown in FIG. 4. Since n=8 in group B, there are 2.sup.8 -1=255 combinations. With such combination patterns, the general-purpose register 104d in the processor 104a has a 1st bit allotted to the 1st weighing machine 101-1, a 2nd bit to the 2nd weighing machine 101-2, . . . , an nth bit to the nth weighing machine 101-n, and the general-purpose register 104d counts from 1 up to 2.sup.n -1 to find 2.sup.n -1 combinations from 0000 . . . 001 to 1111 . . . 111.
In FIG. 4, the symbol W.sub.i indicates ith data given by a combination of a elements. According to this definition, W.sub.1, for example, is indicative of a 1st added weight (combinatorial total weight) out of all combinations of eight weight data items (W.sub.1, W.sub.2, . . . , W.sub.8), and is equal to W.sub.1. As another example, W.sub.255 =W.sub.1 +W.sub.2 + . . . W.sub.8.
(4) FIG. 3 is a flowchart of a subroutine for determining one added weight (combinatorial total weight). This subroutine is executed each time one combinatorial pattern is generated. At the time of starting the subroutine, the added weight value is set to SUM=0 in a step b. Then, the processor 104a sets the numeral k stored in the data memory 104b to "1" in a step c.
(5) The processor 104a then checks bits of selected and non-selected weighing machines in a combinatorial pattern, that is, checks whether the kth bit in a combinatorial pattern is "1" or "0" in a step d.
(6) The processor 104a adds a weight value corresponding to a "1" bit in a combinatorial pattern to an added weight SUM in a step e.
(7) The processor 104a successively updates the numerical value k and repeats bit checking and weight addition until k&gt;8 in steps d, e, f, g.
(8) The above process will be described on the basis of specific numerals with reference to FIG. 4. The processor 104a first computes all combinatorial total weight data items (W.sub.1, W.sub.2, . . . , W.sub.255) expressed in group B, and stores the data items in the data memory 104b. Then, the processor 104a adds the data items in group B and the data items in group A to find an optimum value closest to a target weight value. Since W.sub.0 =0 in group A, three combinations (W.sub.1, W.sub.2, W.sub.3) may be added to the combinations of group B. Such computations are effected by the combinatorial processor unit 104 as follows:
(1) Bit checking in combinatorial pattern:
Bit checking between selected and non-selected weighing machines is effected 8 times each time the subroutine of FIG. 3 is executed once. The subroutine of FIG. 3 is executed as many times as there are combinations of the eight weighing machines. Therefore, the total number of bit checking occurrences is 8.times.255=2040 . . . (i)
(2) Number of weight additions:
For selecting one out of eight weighing machines, there are 8 combinations, since .sub.8 C.sub.1 =8. The number of weight additions required in this case is 8.times.1=8.
For selecting two out of eight weighing machines, there are 28 combinations since .sub.8 C.sub.2 =28. The number of weight additions required is 28.times.2=56 since two additions need to be made for each combination. It follows therefore that the number of weight additions required for all combinations (255) in selecting one to eight weighing machines is given by: ##EQU1##
Furthermore, one addition is required to compute W.sub.3 in group A (for adding the weights from the 10th and 9th weighing machines), and 3.times.255=765 additions are required to be made between groups A and B. Therefore, the total number of weight additions is: EQU 1024+1+765=1790 . . . (iii)
The combinatorial processor unit 104 selects a combination closest to the target weight value, out of the combinatorial total weights thus produced, and controls the discharge control unit 109 to discharge the articles from the weighing machines which give such an optimum combination of weights. Therafter, the combinatorial processor unit 104 controls the pool hoppers to supply articles to the emptied weighing machines, and then waits for a next start signal from the packaging machine.
The process of determining an optimum weight combination using conventional combination patterns has suffered from a low processing speed since a great number of computations are necessary for bit checking and weight additions.